#include <string>
#include <string_view>
#include <unordered_map>

class ArgParser {
  using argContainerT = std::unordered_map<std::string, std::string>;

public:
  explicit ArgParser(int argc, char *argv[]);
  void printArguments() const;
  const argContainerT &getArguments() const;
  std::string_view getScript() const;

private:
  void parseArg(std::string_view arg);

  std::string_view base_path_;
  std::string script_;
  argContainerT arguments_;
};
